Skip to content

comments: src/languages/j* complete — japanese, javanese, jin, all 11 files - #702

Merged
christopherthompson81 merged 1 commit into
mainfrom
comment-sweep-j
Aug 7, 2026
Merged

comments: src/languages/j* complete — japanese, javanese, jin, all 11 files#702
christopherthompson81 merged 1 commit into
mainfrom
comment-sweep-j

Conversation

@christopherthompson81

Copy link
Copy Markdown
Owner

japanese, javanese, jin — in directory order, nothing skipped. 439 → 424 on the files that changed. Comments only; all verified code-identical to main.

No defects, and no self-inflicted ones either — the corrected header-replace held.

Issue references

Cleared from japanese/, which had the fleet's densest cluster: #552 ×6 across kana.ts and kanji.ts, plus #562/#586 in japanese.ts. That directory is now free of them.

Kept

japanese/normalize.ts is the best statement so far of why a fleet default can be wrong for one language:

Embedded Latin routes to the ENGLISH phonemizer — a good default for a Cyrillic or Devanagari engine, which would otherwise DROP it. In a Japanese IPA stream it is worse than a drop, because it injects phonemes Japanese does not have: WHO → [dˈʌbəɫjuː ˈeᶦt͡ʃ ˈoᶷ]. That is ʌ, ɫ, t͡ʃ, oᶷ inside an utterance whose whole inventory is the gojūon.

So the polarity of core/initialisms.ts is flipped here: letter-spelling is the default, because it's always an available Japanese reading, and the word-read acronyms (NATO ナトー) are the lexical exception. Elsewhere the default is to leave the token alone — which here is not an option.

The 分の trap3分の1 reads "three MINUTES of", because the counter fusion sees 3+分 and applies the ふん reading. The fix is narrow on purpose: only between two digits, because most 分の in running text is 自分の ("one's own") and 7時30分の is a genuine ふん. A blanket rewrite corrupts every one of them.

japanese.tsunspacedScript exists because the tier's letter-boundary guards reject an unspaced script's ordinary case: 20℃は暑い drops the ℃ while its punctuation-adjacent twin works.

Notation

1 inventory-boilerplate copy — that class is now clean across a–j — and jin's 🔷 spelled out.

Checks

  • npm run typecheck clean
  • 224 test files / 3114 tests passing

🤖 Generated with Claude Code

https://claude.ai/code/session_012Lc3WnUgogC7okV7n53vjr

… files

439 → 424 on the files that changed. Comments only; all verified
code-identical to main. No defects, and no self-inflicted ones either —
the corrected header-replace held.

Issue references cleared from japanese/, which had the fleet's densest
cluster: #552 ×6 across kana.ts and kanji.ts, plus #562/#586 in
japanese.ts. That directory is now free of them.

Kept, and japanese is the best statement so far of WHY a fleet default
can be wrong for one language:

  japanese/normalize.ts  embedded Latin routing to the English
    phonemizer is a good default for a Cyrillic or Devanagari engine
    that would otherwise DROP the run — and in a Japanese stream it is
    WORSE than a drop, because it injects phonemes the language does not
    have: `WHO` → [dˈʌbəɫjuː ˈeᶦt͡ʃ ˈoᶷ], i.e. ʌ ɫ t͡ʃ oᶷ inside an
    utterance whose whole inventory is the gojūon. So the polarity of
    core/initialisms.ts is FLIPPED here: letter-spelling is the default
    because it is always an available Japanese reading, and the
    word-read acronyms (NATO ナトー) are the lexical exception.

  japanese/normalize.ts  the 分の trap — `3分の1` reads "three MINUTES
    of" because the counter fusion sees `3`+分 and applies the ふん
    reading. The fix is narrow ON PURPOSE: only between two digits,
    because most 分の in running text is 自分の ("one's own") and
    7時30分の is a genuine ふん.

  japanese.ts  `unspacedScript` exists because the tier's letter-boundary
    guards reject an unspaced script's ORDINARY case — `20℃は暑い` drops
    the ℃ while its punctuation-adjacent twin works.

Notation: 1 inventory-boilerplate copy (that class is now clean a–j),
jin's 🔷 spelled out.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Lc3WnUgogC7okV7n53vjr
@christopherthompson81
christopherthompson81 merged commit 12b5397 into main Aug 7, 2026
2 checks passed
@christopherthompson81
christopherthompson81 deleted the comment-sweep-j branch August 7, 2026 03:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant